package com.hpin.fansea.base;

import android.content.Context;

import java.lang.Thread.UncaughtExceptionHandler;

/**
 * 全局异常捕获类
 * @author Aaron
 *
 */
public class CrashHandler implements UncaughtExceptionHandler {

	//单例引用，这里我们做成单例的，因为我们一个应用程序里面只需要一个UncaughtExceptionHandler实例
    private static CrashHandler instance; 
    
    private CrashHandler(){}
    
    //同步方法，以免单例多线程环境下出现异常
    public synchronized static CrashHandler getInstance(){
        if (instance == null){
            instance = new CrashHandler();
        }
        return instance;
    }
    
    //初始化，把当前对象设置成UncaughtExceptionHandler处理器
    public void init(Context ctx){
        Thread.setDefaultUncaughtExceptionHandler(this);
    }
    
   //当有未处理的异常发生时，就会来到这里。。
    @Override
    public void uncaughtException(Thread thread, Throwable ex) {
//        LogUtil.e("TAG", "uncaughtException, thread: " + thread + " name: " + thread.getName() + " id: " + thread.getId() + "exception: "
//                + ex);
//             LogUtil.e("TAG", "哈哈 , 抓住你 了" + ex.getMessage());
             //退出应用进程  
//             System.exit(0);
             
    }

}
